X に書ききれないことはここに

X に書ききれないことはここに

Joker8 ビルドログ

概要

本エントリは自作キーボードキット「Joker8」のオレオレビルドログです。組立手順説明書と比べて以下の点が異なります。

  • XIAO RP2040 の代わりに XIAO ESP32C3 を使用
  • USB 接続ではなく WiFi 接続
  • ファームウェアは自作

組立手順説明書: https://blog.alglab.net/archives/joker8-build-guide/

完成写真

はじめに

USB/Bluetooth 接続ではなく WiFi 接続して家電を操作できるマクロパッドが欲しいと思ったので作ってみました。booth で自作キーボードキットを探してみると WiFi マクロパッドに使用できそうな Joker8 をみつけたのでこちらをカスタムすることにしました。

補足: 自作キーボード界隈では Pro Micro というマイコンモジュールがよく使用されるのですが、Pro Micro とピン互換で WiFi 対応のモジュールがみあたらないので、Pro Micro 用のキットを WiFi 接続マクロパッドに仕立てるのは面倒です

組み立て

説明書に含まれないカスタム要素は以下の通り

  • アンテナのコネクタが穴を通らなかったので着せ替えプレートはなし
  • アンテナは飛び出したまま(将来的には裏面に両面テープで貼り付け?)
  • キーキャップを塗装

ファームウェア

以下のエントリで確認した機能をガッチャンコして修正しました。なお電池駆動まではやっていません。

リポジトリ: https://github.com/sokosun/joker8_esp32c3_heos_lgtv

機能

オーディオアンプの入力切替&音量調整やディスプレイの入力切替がワンボタンで動作します。具体的には赤外線リモコンを本体に向けて、入力切替ボタンを押して、カーソ ルキーで希望の入力を選んで、決定ボタンで入力を切り替えて…ということがボタン一発で可能になります。また外部サービスに依存していないので、家庭内 WiFi さえ生きて入ればインターネット不通でも動作します。

具体的な機能は以下の通り

  • 音量20に設定 (Spotify用)
  • 音量25に設定&入力をUSB-DACに変更 (PC用)
  • 音量30に設定&入力を光入力に変更 (ゲーム用)
  • HDMI入力1 に設定
  • HDMI入力2 に設定
  • HDMI入力3 に設定
  • HDMI入力4 に設定

そのほか

キースイッチ押下時の立下り割込みを設定すると、スイッチを放すときにも割込みがかかる現象が(5個試してうち3個で)発生しました。原因の詳細は確認できていません がローレベル割込みに変更することで対処しました。なおはんだづけをやり直したり、ESP32C3 の IO MUX のフィルタ機能も試しましたが効果はありませんでした。

標準の RP2040 マイコンは USB 接続のみ対応ですが、ESP32C3 なら USB/Bluetooth/WiFi 対応なので Bluetooth 接続マクロパッドとしても使えるはずです。